package imotech.web.mbeans;

import imotech.ejb.dao.AgendamentoDAO;
import imotech.ejb.dao.ClienteDAO;
import imotech.ejb.dao.ImovelDAO;
import imotech.ejb.model.AgendamentoTipo;
import imotech.ejb.model.Cliente;
import imotech.ejb.model.Imovel;

import java.util.Date;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name="agendamentoMB")
@SessionScoped
public class Agendamento {
	
	private Date dataHora;
	private int tipo;
	private String observacao;
	
	private Imovel imovel;
	private imotech.ejb.model.Cliente cliente;
	
	@EJB
	private AgendamentoDAO agendamentoDAO;
	
	@EJB
	private ImovelDAO imovelDAO;
	
	@EJB
	private ClienteDAO cdao;
	
	public Agendamento() {
	}

	public Date getDataHora() {
		return dataHora;
	}

	public void setDataHora(Date dataHora) {
		this.dataHora = dataHora;
	}
	
	
	
	public int getTipo() {
		return tipo;
	}

	public void setTipo(int tipo) {
		this.tipo = tipo;
	}
	
	
	
	public String getObservacao() {
		return observacao;
	}
	
	public void setObservacao(String observacao) {
		this.observacao = observacao;
	}

	
	
	public Imovel getImovel() {
		return imovel;
	}
	
	public Cliente getCliente() {
		return cliente;
	}
	
	
	public String agendamentoComprador() throws Exception {
		//tipo = tipo.VISITA_COM_COMPRADOR;
//		System.err.println(dataHora);
//		System.err.println(tipo.name());
//		System.err.println(observacao);
		
		imotech.ejb.model.Agendamento agendamento = new imotech.ejb.model.Agendamento();
		agendamento.setDataHora(dataHora);
		agendamento.setObservacao(observacao);
		agendamento.setTipo(AgendamentoTipo.values()[tipo]);
		agendamento.setImovel(imovel);
		agendamento.setVisitante(cliente);
		
		
		try {
			agendamentoDAO.cadastrar(agendamento);
		} catch (Exception ex) {
			return "./cadastrar.jsp";
		}
		
		return "index.html";
	}
	
	
	public String selecionaCliente(String clienteId) {
		
		this.cliente = cdao.buscarId(Integer.parseInt(clienteId));
		
		return "/agendamento/cadastrar.jsp";
	}
	
	public String agendarImovel(String imovelId) {
		
		this.imovel = imovelDAO.recuperar(Integer.parseInt(imovelId));
		
		return "/agendamento/cadastrar.jsp";
	}
	
	public String alterarCliente() {
		return "/agendamento/selecionarCliente.xhtml";
	}
	
	public String alterarImovel() {
		return "/imoveis/todos.xhtml";
	}
	

}
